From 2e88ae8ad99a07e5adf1264dead14f71d978b461 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 9 Sep 2014 14:48:59 -0400 Subject: [PATCH] GtkStackSwitcher: Disconnect signals when a child is removed This is quite an oversight, and causes bad things to happen if the child is later changed. https://bugzilla.gnome.org/show_bug.cgi?id=736307 --- gtk/gtkstackswitcher.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gtk/gtkstackswitcher.c b/gtk/gtkstackswitcher.c index 35d82b8be2..44fc7c8191 100644 --- a/gtk/gtkstackswitcher.c +++ b/gtk/gtkstackswitcher.c @@ -330,6 +330,11 @@ on_stack_child_removed (GtkContainer *container, GtkStackSwitcherPrivate *priv; priv = gtk_stack_switcher_get_instance_private (self); + + g_signal_handlers_disconnect_by_func (widget, on_title_icon_visible_updated, self); + g_signal_handlers_disconnect_by_func (widget, on_position_updated, self); + g_signal_handlers_disconnect_by_func (widget, on_needs_attention_updated, self); + button = g_hash_table_lookup (priv->buttons, widget); gtk_container_remove (GTK_CONTAINER (self), button); g_hash_table_remove (priv->buttons, widget); -- 2.30.2